package cn.sunline.rest.util;

import java.io.File;
import java.io.FileFilter;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName FileTools
 * @Description 文件操作工具类
 * @author zhangli
 * @Date 2017年2月7日 下午2:58:29
 * @version 1.0.0
 */
public class FileTools {

    /**
     * @Description 根据包名获取class文件
     * @param pack
     * @return
     */
    public static List<File> getAllClsFilesByPack(String path) throws URISyntaxException{
        List<File> fileList = new ArrayList<>();
        File dir = new File(path);

        // 如果不存在或者 也不是目录就直接返回
        if (!dir.exists() || !dir.isDirectory()) {
            return fileList;
        }
        File[] files= dir.listFiles();
        for (File fileName : files) {
            if (fileName.isDirectory()) {
                fileList.addAll(getAllClsFilesByPack(fileName.getPath()));
            } else if(fileName.getName().endsWith(".class")){
                fileList.add(fileName);
            }
        }
        return fileList;
    }
    
    public static void main(String[] args) throws Exception {
        String path = FileTools.class
                .getResource("/" + "cn.sunline.rest".replaceAll("\\.", "/")).toURI().getPath();
        List<File> list = FileTools.getAllClsFilesByPack(path);
        System.out.println(list.size());
    }
}
